Razor View Engine হল একটি ডাইনামিক ওয়েব টেমপ্লেট ইঞ্জিন, যা ASP.Net Core অ্যাপ্লিকেশনে ব্যবহৃত হয় HTML এবং C# কোড একত্রে এক্সপ্রেস করার জন্য। এটি HTML মার্কআপের মধ্যে C# কোড ইন্সার্ট করতে সক্ষম এবং ওয়েব পেজে ডাইনামিক কন্টেন্ট রেন্ডার করতে সাহায্য করে। Razor এর মাধ্যমে অ্যাপ্লিকেশন ডেভেলপাররা সহজেই ডাইনামিক ইউজার ইন্টারফেস তৈরি করতে পারেন।
Razor View Engine HTML কোডের মধ্যে C# কোড রেন্ডার করার জন্য একটি বিশেষ সিম্বল ব্যবহার করে, যেটি @
চিহ্ন দিয়ে চিহ্নিত হয়। Razor কোডের মাধ্যমে অ্যাপ্লিকেশন লজিক যেমন লুপ, কন্ডিশনাল স্টেটমেন্ট, ভেরিয়েবল রেফারেন্স ইত্যাদি সহজেই অ্যাক্সেস করা যায়, যা ওয়েব পেজের ডাইনামিক কন্টেন্ট তৈরির জন্য প্রয়োজনীয়। উদাহরণস্বরূপ:
<h1>@Model.Title</h1>
<p>@Model.Description</p>
এখানে @Model.Title
এবং @Model.Description
C# কোড যা Model
অবজেক্টের ডেটা রেন্ডার করে HTML তে দেখায়।
1. সিম্পল এবং ক্লিন সিনট্যাক্স
Razor এর সিনট্যাক্স খুবই সিম্পল এবং ক্লিন। HTML মার্কআপের মধ্যে C# কোড লেখা সহজ, কারণ Razor কোড সাধারণত @
চিহ্ন দিয়ে শুরু হয়, যা HTML-এর সাথে সংঘর্ষ তৈরি করে না। উদাহরণ:
<h2>@DateTime.Now</h2>
এখানে @DateTime.Now
দ্বারা বর্তমান সময় রেন্ডার করা হবে।
2. এক্সপ্রেসিভ এবং পারফরম্যান্স অগ্রাধিকার
Razor প্রক্রিয়াটি সিম্পল এবং দ্রুত রেন্ডারিং নিশ্চিত করে, কারণ এটি ডায়নামিক কন্টেন্ট রেন্ডার করার জন্য কম্পাইল করা কোড ব্যবহার করে, যা অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করে।
3. Strongly Typed Views
Razor ভিউ ইঞ্জিন সঙ্গতিপূর্ণ (strongly typed) ভিউ তৈরি করার সুযোগ দেয়, যা ভিউ এবং মডেলের মধ্যে ডেটা ব্যবস্থাপনাকে আরও নির্ভুল করে তোলে। যখন ভিউ একটি নির্দিষ্ট মডেলের সাথে সম্পর্কিত হয়, তখন কম্পাইল টাইমে ভুল চেক করা সম্ভব হয়। উদাহরণ:
@model MyApp.Models.Product
<h1>@Model.Name</h1>
এখানে @model
ডিরেকটিভ দ্বারা ভিউ একটি নির্দিষ্ট মডেল টাইপের সাথে সম্পর্কিত হয়, যার ফলে টাইপ চেকিং হয় এবং রUNTIME এ ভুল হতে পারে না।
4. HTML এবং C# এর একত্রিত ব্যবহার
Razor সহজভাবে HTML এবং C# কোড একত্রিত করতে পারে, যা ডেভেলপারদের দ্রুত ডাইনামিক ওয়েব পেজ তৈরি করতে সহায়তা করে। উদাহরণ:
<ul>
@foreach(var item in Model.Items)
{
<li>@item.Name</li>
}
</ul>
এই কোডে foreach
লুপ ব্যবহার করে ডাইনামিক কন্টেন্ট রেন্ডার করা হচ্ছে, যেখানে Model.Items
থেকে প্রতিটি আইটেমের নাম দেখানো হচ্ছে।
5. সহজ ইন্টিগ্রেশন
Razor সহজেই অন্যান্য ASP.Net Core কম্পোনেন্টের সাথে ইন্টিগ্রেট করা যায়, যেমন কন্ট্রোলার, মডেল, ডিপেনডেন্সি ইনজেকশন ইত্যাদি।
1. Razor Views
ASP.Net Core অ্যাপ্লিকেশনে সাধারণত Views
ফোল্ডারে Razor ফাইল (যেমন .cshtml
এক্সটেনশনে) রাখা হয়। এই ফাইলগুলিতে HTML এবং C# কোড একত্রিত হয়ে ডাইনামিক পেজ তৈরি করে। উদাহরণ:
Home/Index.cshtml
Account/Login.cshtml
2. Razor Pages
ASP.Net Core 2.0 থেকে Razor Pages পরিচিতি পেয়েছে, যা MVC স্টাইলের থেকেও সরল এবং সহজ। Razor Pages ফোল্ডারে .cshtml
ফাইল থাকে, কিন্তু এটি নিজে কন্ট্রোলার হিসেবে কাজ করে এবং প্রতিটি পেজের জন্য আলাদা হ্যান্ডলার থাকে।
ডাইনামিক কন্টেন্ট রেন্ডারিং
@{
var message = "Welcome to Razor!";
}
<h1>@message</h1>
এখানে Razor কোডের মাধ্যমে message
ভেরিয়েবল ডিফাইন করা হয়েছে এবং তা HTML পেজে রেন্ডার করা হয়েছে।
লুপের মাধ্যমে ডেটা রেন্ডারিং
<ul>
@foreach(var product in Model.Products)
{
<li>@product.Name</li>
}
</ul>
এখানে একটি foreach
লুপ ব্যবহার করে Model.Products
এর প্রতিটি আইটেমের নাম রেন্ডার করা হচ্ছে।
Razor View Engine ASP.Net Core অ্যাপ্লিকেশনের জন্য একটি অত্যন্ত শক্তিশালী এবং ফ্লেক্সিবল টেমপ্লেট ইঞ্জিন। এটি ডাইনামিক কন্টেন্ট রেন্ডার করতে HTML ও C# কোড একত্রিত করতে সক্ষম। Razor এর সুবিধাগুলি যেমন সিম্পল সিনট্যাক্স, strongly typed views, এবং HTML এবং C# এর একত্রিত ব্যবহার ডেভেলপারদের দ্রুত এবং কার্যকর ওয়েব পেজ তৈরি করতে সহায়তা করে। Razor Views এবং Razor Pages উভয়ই ডেভেলপমেন্টে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং ASP.Net Core অ্যাপ্লিকেশনগুলোকে আরও মডুলার ও রক্ষণাবেক্ষণযোগ্য করে তোলে।
common.read_more